/*
    This file is part of MOOPerformanceAssessment.

    MOOPerformanceAssessment is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    MOOPerformanceAssessment is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with MOOPerformanceAssessment; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Authors: Thomas Voß, 2007
    Contact: thomas.voss.bochum@googlemail.com
*/

#ifndef __MOOPERFORMANCEASSESSMENT_H__
#define __MOOPERFORMANCEASSESSMENT_H__

#include <MOOPerformanceAssessmentGlobal.h>
#include <MOOPerformanceAssessmentConfig.h>

// Forward Declarations
namespace logging
{
    class Logger;
}

class QIODevice;

class MOOPerformanceAssessment
{
 public:
    MOOPerformanceAssessment();

    void 					run();
    
    MOOPerformanceAssessmentConfig & 		config();
    const MOOPerformanceAssessmentConfig & 	config() const;
    void 					setConfig( const MOOPerformanceAssessmentConfig & config );
    
 protected:
    MOOPerformanceAssessmentConfig 		m_config;
    logging::Logger				* m_logger;
};

// Inline Implementations

inline MOOPerformanceAssessmentConfig & MOOPerformanceAssessment::config() { return( m_config ); }
inline const MOOPerformanceAssessmentConfig & MOOPerformanceAssessment::config() const { return( m_config ); }
inline void MOOPerformanceAssessment::setConfig( const MOOPerformanceAssessmentConfig & config ) { m_config = config; }

#endif // __MOOPERFORMANCEASSESSMENT_H__
